import axios from "axios";
// 在组件外部使用编程式
import { createBrowserHistory } from 'history'
let history = createBrowserHistory()

let http = axios.create({
    baseURL: '/api',
    withCredentials: true,
    timeout: 1000 * 10
})

// 请求拦截器
http.interceptors.request.use(config => {
    // 携带token过去
    let token = JSON.parse(localStorage.getItem('qf-token') as string)
    config.headers!.authorization = token as string
    // 放行
    return config
})

// 响应拦截器
http.interceptors.response.use(config => {
    if (config.data.code === '1004') {
        // 如果登录过期，登录失败了
        // 跳转到登录页
        localStorage.removeItem('qf-token')
        history.push('/login')
        window.location.reload()
    }
    // 放行
    return config
})

export default http